Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Oct 2005 21:22:08 +0900
From:      SUZUKI Shinsuke <suz@kame.net>
To:        craig@olyun.gank.org
Cc:        freebsd-net@freebsd.org
Subject:   Re: 6.0-RC1 IPv6 losing local subnet route
Message-ID:  <x7k6fwo6mn.wl%suz@alaxala.net>
In-Reply-To: <20051028211416.GA59989@nowhere>
References:  <20051028012957.GA50419@nowhere> <x7wtjynvlm.wl%suz@alaxala.net> <20051028040901.GA47012@nowhere> <x7u0f2nm7q.wl%suz@alaxala.net> <x7r7a5of6y.wl%suz@alaxala.net> <20051028211416.GA59989@nowhere>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello all,

>>>>> On Fri, 28 Oct 2005 16:14:16 -0500
>>>>> craig@olyun.gank.org(Craig Boston)  said:

> Knowing that, I can cause it to happen on command by manually
> re-configuring an interface with an address it already has:
> # ifconfig em1 inet6 2002:abcd:ef01:5555::20
> (routes are all normal)
> # ifconfig em1 inet6 2002:abcd:ef01:5555::20
> (prefix route disappears)

I could reproduce your problem, and found out the reason: it's a bug,
not a feature.


In this case, the second ifconfig command removes the old address and
then installs the new one (actually the same one again).  Within
kernel, however, the prefix route is completely removed after 1[s] by
nd6_timer() (this 1[s] timer is set in in6.c in6_control() l.710).

This route-removing timer is invoked after the addition of new
address, and removes the prefix route.  (prefix lifetime is not
properly managed in case of a statically configured address)


Here's the list of possible solutions.  I'm now working on the second
one.  But if you need an immediately solution for 6.0-RELEASE, please
consider the first one.

- in ifconfig, wait for 1[s] between the removal of the old address
  and addition of the new address
  	it immediately works, but people has to wait 1[s] for each
  	address assignment...

- in kernel, properly manages the reference count of nd_prefix and
  remove the nd_prefix only when the reference count becomes 0.
  	There's a KAME code implementing this.
	I'm now porting it, but it'll take some time to check its
	behavior (a day or two)...

Thanks,
----
SUZUKI, Shinsuke @ KAME Project



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?x7k6fwo6mn.wl%suz>